// Package configs 系统配置读取
package configs

import (
	"github.com/go-ini/ini"
	"os"
	"strings"
)

var ServerConfig = map[string]string{}

// GetServerConfig 服务配置 防止变量污染故用函数组织
func GetServerConfig() map[string]string {
	if _, ok := ServerConfig["HOST"]; ok {
		return ServerConfig
	}
	pa, _ := os.Getwd()
	GetDirectory := strings.Replace(pa, "\\", "/", -1)
	configFilePath := GetDirectory + "/conf.ini"

	Cfg, err := ini.Load(configFilePath) //此路径为ini文件的路径
	if err != nil {
		panic("读取ini配置文件失败")
	}
	section := Cfg.Section("System")

	serverConfig := make(map[string]string)
	serverConfig["HOST"] = section.Key("Host").String()             //监听地址
	serverConfig["PORT"] = section.Key("Listen").String()           //监听端口
	serverConfig["VIEWS_PATTERN"] = "views/*/*"                     //模板路径pattern
	serverConfig["ENV"] = section.Key("Env").String()               // 环境模式 release/debug/test
	serverConfig["HashIDSalt"] = section.Key("HashIDSalt").String() // 加密字符串
	serverConfig["LogError"] = section.Key("LogError").String()     // 捕获错误日志

	serverConfig["Name"] = "GinMin框架"
	serverConfig["Author"] = "Myxf"
	serverConfig["Gitee"] = "https://gitee.com/mayoushang/ginmin"
	serverConfig["Ver"] = "1.1"

	ServerConfig = serverConfig
	return ServerConfig
}
